在database.yml中定义所有设置。如何从ruby访问这些设置?我查看了App::Application::config,但在那里找不到它。另外,我记得人们可以在没有yaml的情况下配置数据库设置,有人知道怎么做吗? 最佳答案 Rails.configuration.database_configuration这将为您提供一个哈希表,其中包含每个环境的配置。例如。获取您的开发数据库名称:Rails.configuration.database_configuration["development"]["database"]
classArticleArticle是否有一个类方法可以用来检索关联列表?通过查看模型的代码,我知道Article与Comment和Category相关联。但是有没有一种方法可以通过编程方式获得这些关联? 最佳答案 你想要ActiveRecord::Reflection::ClassMethods#reflect_on_all_associations那就是:Article.reflect_on_all_associations你可以传入一个可选参数来缩小搜索范围,所以:Article.reflect_on_all_associa
这可能是一个简单的问题,但我似乎正在努力寻找一个优雅的解决方案。我有两个ActiveRecord模型类,它们之间有has_one和belongs_to关联:classItem我正在寻找一种优雅的方法来查找所有Item对象,这些对象没有与之关联的购买对象,理想情况下无需求助于boolis_purchased或Item上的类似属性。现在我有:purchases=Purchase.allItem.where('idnotin(?)',purchases.map(&:item_id))这行得通,但对我来说似乎效率低下,因为它执行两个查询(并且购买可能是一个庞大的记录集)。运行Rails3.1.
当我运行rakedb:migrate时,我的Rails应用程序工作正常,但当我尝试启动Rails控制台时出现问题。2.0.0p247:003>User=>User(nodatabaseconnection) 最佳答案 这是由于ActiveRecord从4.0开始懒惰地建立连接。别担心。第一次建立后,您将开始看到预期的输出。试试这个:2.1.4:001>User#=>User(call'User.connection'toestablishaconnection)2.1.4:001>User.count#=>SELECTCOUNT(*
假设我有这个模型:classConversation如何在不使用枚举的数值或不必遍历每个对话的情况下找到所有事件对话?我尝试执行Conversation.where(status::active),但没有产生任何结果。想到的唯一解决方案是遍历所有对话并选择事件对话,但这看起来不是一个好的解决方案。Conversation.all.select{|conversation|conversation.active?}我能做些什么吗? 最佳答案 ActiveRecord::Enum提供基于其值的范围。试试看:Conversation.ac
非常简单的问题-我如何进行搜索以查找名称以ActiveRecord中的特定字符串开头的所有记录。我在互联网上看到过各种使用逐字LIKESQL子句的位-但据我所知,这不是“正确”的做法。是否有“合适的”Rails方法? 最佳答案 如果您希望在数据库中进行搜索,那么您将需要使用SQL。当然,您需要在数据库中进行搜索,否则您需要将所有对象加载到Ruby中(这不是一件好事)。所以,你需要类似的东西MyModel.find(:all,:conditions=>["fieldLIKE?","#{prefix}%"])其中prefix是一个包含您
我正在测试将一些消息(带有puts、p警告等)放在控制台上的类。我只是想知道在RSpec测试期间是否有任何抑制此输出的能力? 最佳答案 我通过将$stout重定向到文本文件来抑制类中的puts输出。这样,如果我出于任何原因需要查看输出,它就在那里,但不会混淆我的测试结果。#spec_helper.rbRSpec.configuredo|config|config.before(:all,&:silence_output)config.after(:all,&:enable_output)endpublic#Redirectsstde
如果我想比较两个数组并创建一个内插输出字符串,如果数组y中的数组变量存在于x中,我如何获得每个匹配元素的输出?这就是我正在尝试但未完全得到结果的方法。x=[1,2,4]y=[5,2,4]x.eachdo|num|puts"Thenumber#{num}isinthearray"ifx.include?(y.each)end#=>[1,2,4] 最佳答案 可以使用设置交集的方法&为此:x=[1,2,4]y=[5,2,4]x&y#=>[2,4] 关于ruby-查找两个数组之间的共同值,我们在
我想知道是否有任何相对简单的方法可以加快我的控制台加载时间,它开始接近30秒。我有很多子类,它们的方法似乎不受reload!的影响,所以我最终打开和关闭控制台很多次。IRB加载速度快如闪电。我的gem太多了吗?我该如何安排加载任务的时间,以便我可以看到什么占用了最多的时间?如您所见,我已经尝试过dev-boostgem但无济于事。该应用程序在Passenger中很好,只是控制台加载让我很烦。在具有2.4GHz和4GBRAM的MBPOSX10.6.6上运行。不使用RVM。版本:Ovid$rails-vRails3.0.3Ovid$ruby-vruby1.9.2p136(2010-12-2
所以我在我的观点中创造:如何从日期中获取月份名称?我正在尝试做某事,例如但没有成功。我不断收到错误消息:未初始化的常量ActionView::Base::CompiledTemplates::MONTHNAMES我如何初始化常量或是否有任何其他方法从日期格式中获取名称?非常感谢任何答案! 最佳答案 引用this如果@date>>Fri,11Jun2010然后@date.strftime("%B")>>"June" 关于ruby-on-rails-如何在RubyonRails中获取月份名称